Почему мне нравится программировать.
Программирование это что-то вроде способа общения, при чем не только с компьютером. Но это не язык, скорее это что-то вроде стихов или изобретательства.
Вам в детстве конструктор нравился? Мне да. Собирая из разрозненных кусочков цельную картину ты выражаешь свое видение чего-то. Как рисунок. Создаешь что-то, чего раньше не было. Пусть это часто копирует чьи-то изделия, но именно этот самолет ты собрал сам. В детстве в этом есть магия. Но даже если вам нравилось, что-то другое то это тоже можно сравнить и объяснить, просто немного другими словами.
Программирование - способ выражения мыслей. Своих или заказчика. При чем мысли заказчика проходят через собственный фильтр. Программы представляют из себя набор из маленьких кубиков, собирая которые можно получить что-то цельное и осмысленное, созданое твоим разумом. Желание созидать в программировании очень хорошо можно реализовать. Я умышленно не говорю, что в программе есть красота потому, что не могу эту красоту объяснить. И потому, что слово красота слишком многогранно и у каждого свое понимание данного термина.
Программы общаются. Они общаются с пользователем, с другой программой, с вами - ее создателем и с другими программистами. В этом есть волшебство, которе маячит где-то рядом, но не все могут это объяснить или даже осознать.
Вы запросто отличите хорошую программу от плохой. Ту, с которой работать приятно и ту, которую без надобности открывать не станешь. Тут правда есть ньюанс - программирование серверной части лишь косвенно затрагивает пользователя, но даже это можно увидеть или, как ни странно - ощутить.
Если ваша программа популярна, то вы тем самым общаетесь с большим количеством людей через нее. Это все равно что выйти на центральную площадь и в мегафон читать стихи, прозу или рассказывать шутки. Или спроецировать на облака картину или фильм.
Это все результат общения программиста со своим внутренним миром, накопленными им знаниями и заказчиком, которым может быть он сам. Это куча маленьких форнитов, живущих в доме или даже городе, которые что-то создают, а их и их систему, организацию жизни, уклад и ценности создает как раз программист.
Может, кто-то думает, что эта область ни разу не творческая или что написание программ достаточно ограничено. Здесь есть место творчеству, а есть рутине так же как есть люди, которые заполняют газеты, журналы или книги наборами слов, а есть те, кто пишут. А ограниченность она лишь в воображении. Программа может быть чисто механической, но это уже нечто другое. Программа может взаимодействовать с окружающим миром будучи частью системы робота, а уж это для человека, мало связанного с программированием, гораздо больше и ближе, чем ярлычок на компьютере, который нельзя потрогать.
Программа не есть законченный продукт. Она как ребенок. Оптимизируя, изменяя ее вы буд-то воспитываете ребенка, прививая полезное и хорошее, конечно в вашем понимании данных слов. При этом у программы есть характер, доставшийся ей в наследство от вас или другого программиста, что писал ее до вас или даже характер многих людей.
Характер может быть разным. Он может быть истеричным и ранимым, когда мелкая ошибка или даже простое стечение обстоятельств вызывают у нее панику, безудержные крики в логи и зависание. Бывает спокойный, молчаливый характер когда даже не ясно было что-то сделано, а если что-то не удалось, то вам об этом не скажут. Бывают разговорчивые программы, гоняющие траффик, задающие пользователю кучу вопросов. Бывают открытые, которые рады тебе, в них все логично и понятно и знаешь как с ней обращаться или как добавить в нее что-то новое и куда именно.
При чем характер у программы как минимум в двух экземплярах: то, что видит пользователь и как с этим взаимодействует и то, что видит программист. Есть еще гены от предков - характерные семейные черты или необычный способ ощения.
Все это - большой мир, который можно изучать, строить, изобретать и творить. И мир этот давным давно вписан в наш с вам. Даже это не отдельный мир, а часть того, в котором живем мы.
Тут все точно так же как и в жизни: если вы внимательны, терпеливы, любите подумать, можете починить или вылечить, умеете слушать, воображать, чувствовать, видеть то вы сможете общаться с программой, сотворить ее, вырастить и рассказать о себе через нее. Рассказать ей о себе, послушать и попробовать понять что скажет вам она. Поговорить с кем-то совершенно иначе, нежели вы привыкли разговаривать.
Это один из многих способов познания себя, окружающих и того, что мы называем вселенной.
P.S.
Если вы думаете, что в вашей жизни вы сталкиваетесь только с программами, которые написали другие, то удивитесь насколько часто вы сами занимаетесь программированием. Только вы называете это другими словами.
Запись сделана с помощью m.livejournal.com.